<script type="text/javascript">
    // 定义全局变量存储当前选中的项目 ID
    window.currentSelectedProjectId = 0;
    
    // 页面加载完成后执行
    $(document).ready(function() {
        console.log("Setcourse project selection enhancement loaded");
        
        // 初始化时设置全局变量
        window.currentSelectedProjectId = $("#project-select").val() || 0;
        console.log("Initial project ID:", window.currentSelectedProjectId);
        
        // 项目选择框变化时更新全局变量并刷新表格
        $(document).on("change", "#project-select", function() {
            var projectId = $(this).val() || 0;
            window.currentSelectedProjectId = projectId;
            console.log("Updated current selected project ID:", projectId);
            
            // 刷新表格，使用完整URL参数
            refreshTableWithProject(projectId);
        });
        
        // 重写添加按钮的URL
        $(document).on('click', '.btn-add', function () {
            var publicwelfare_id = window.currentSelectedProjectId;
            var url = $.fn.bootstrapTable.defaults.extend.add_url;
            if (publicwelfare_id > 0) {
                url += (url.indexOf("?") > -1 ? "&" : "?") + "publicwelfare_id=" + publicwelfare_id;
            }
            
            // 打印调试信息
            console.log("Opening add window with URL:", url);
            console.log("Selected project ID:", publicwelfare_id);
            
            // 打开添加窗口并传递项目 ID
            var options = $.extend({}, $(this).data() || {});
            options.callback = function(index, layero) {
                // 当窗口加载完成后的回调
                var iframe = $(layero).find('iframe')[0];
                if (iframe && iframe.contentWindow) {
                    try {
                        // 尝试设置项目选择框的值
                        var select = iframe.contentWindow.document.getElementById('c-publicwelfare_id');
                        if (select && publicwelfare_id > 0) {
                            // 使用setTimeout确保选择框已经初始化
                            setTimeout(function() {
                                select.value = publicwelfare_id;
                                $(select).trigger('change');
                                console.log("Set project ID in iframe:", publicwelfare_id);
                            }, 500);
                        }
                    } catch (e) {
                        console.error("Error setting project ID in iframe:", e);
                    }
                }
            };
            Fast.api.open(url, __('Add'), options);
            return false;
        });
        

        // 辅助函数：使用项目ID刷新表格
        function refreshTableWithProject(projectId) {
            var url = $.fn.bootstrapTable.defaults.extend.index_url;
            // 彻底清理URL参数
            if (url.indexOf('?') > -1) {
                url = url.split('?')[0];
            }

            // 构建查询参数对象
            var queryParams = {};
            if (projectId > 0) {
                queryParams.publicwelfare_id = projectId;
                console.log("Refreshing table with specific project ID:", projectId);
            } else {
                queryParams.publicwelfare_id = 'all';
                console.log("Refreshing table with all projects");
            }

            // 使用 Bootstrap Table 的 refreshOptions 方法
            $("#table").bootstrapTable('refreshOptions', {
                url: url,
                queryParams: function(params) {
                    // 清除所有现有参数，只保留新的参数
                    return $.extend({}, queryParams, {
                        sort: params.sort,
                        order: params.order,
                        offset: params.offset,
                        limit: params.limit
                    });
                }
            });

            console.log("Refreshing table with URL:", url, "and params:", queryParams);
        }
    });
    
    // 修复添加和编辑窗口的表单提交
    window.fixAddEditForm = function(iframe) {
        try {
            if (!iframe || !iframe.contentWindow) return;
            
            // 获取iframe中的表单
            var form = iframe.contentWindow.$('form');
            if (!form.length) return;
            
            // 替换表单的提交处理
            form.off('submit').on('submit', function(e) {
                e.preventDefault();
                
                // 获取当前表单中的项目ID
                var currentFormProjectId = iframe.contentWindow.$("#c-publicwelfare_id").val() || 0;
                console.log("Current form project ID:", currentFormProjectId);
                
                $.ajax({
                    url: form.attr('action'),
                    type: 'POST',
                    data: form.serialize(),
                    dataType: 'json',
                    success: function(ret) {
                        // 修改表单提交成功后的处理逻辑
                        if (ret.code === 1) {
                            Layer.closeAll();
                            Layer.msg(ret.msg, {icon: 1});
                            
                            // 获取当前表单中的项目ID
                            var currentFormProjectId = iframe.contentWindow.$("#c-publicwelfare_id").val() || 0;
                            
                            // 如果表单中选择了项目，更新全局项目选择
                            if (currentFormProjectId > 0) {
                                // 设置项目选择框的值（不触发change事件）
                                $("#project-select").val(currentFormProjectId);
                                // 更新全局变量
                                window.currentSelectedProjectId = currentFormProjectId;
                            }
                            
                            // 直接调用刷新函数，避免触发change事件
                            refreshTableWithProject(window.currentSelectedProjectId);
                        } else {
                            iframe.contentWindow.Layer.msg(ret.msg, {icon: 2});
                        }
                    },
                    error: function(xhr) {
                        iframe.contentWindow.Layer.msg('请求失败: ' + xhr.status, {icon: 2});
                    }
                });
                return false;
            });
            
            console.log("Form submission handler replaced");
        } catch (e) {
            console.error("Error fixing form:", e);
        }
    };
    
    // 监听添加和编辑窗口打开事件
    $(document).on('click', '.btn-edit, .btn-add', function() {
        // 使用setTimeout等待窗口打开
        setTimeout(function() {
            // 查找最新打开的iframe
            var iframes = $(".layui-layer-content iframe");
            if (iframes.length > 0) {
                var iframe = iframes[iframes.length - 1];
                // 等待iframe加载完成
                if (iframe.contentWindow.document.readyState === 'complete') {
                    window.fixAddEditForm(iframe);
                } else {
                    $(iframe).on('load', function() {
                        window.fixAddEditForm(iframe);
                    });
                }
            }
        }, 500);
    });

// 改进refreshTableWithProject函数
function refreshTableWithProject(projectId) {
    var url = $.fn.bootstrapTable.defaults.extend.index_url.split('?')[0];
    
    // 构建查询参数
    var queryParams = {
        publicwelfare_id: projectId > 0 ? projectId : 'all'
    };
    
    // 使用refreshOptions确保参数干净
    $("#table").bootstrapTable('refreshOptions', {
        url: url,
        queryParams: function(params) {
            return $.extend({}, queryParams, {
                sort: params.sort,
                order: params.order,
                offset: params.offset,
                limit: params.limit
            });
        }
    });
}
</script>
